package com.zxl.springcloud.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean {

    /** @LoadBalanced  用负载均衡策略请求服务提供者，Spring Ribbon 的提供的能力
     *
     * @return
     */
    @LoadBalanced
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }


    /**
     * 修改ribbon的默认算法  (默认为轮询)
     * @return
     */
//    @Bean
    public IRule myRule() {
        // 不只限于以下两个算法，可自行替换
        // 随机算法
        return new RandomRule();
        // 重试算法
//    return new RetryRule();
    }
}
